package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by zhangjh on 2016/10/26.
 */
public class ChannelProductDto extends DtoEntity {

    /**
     *产品ID
     */
    private Long productId;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 条形码
     */
    private String barCode;



    /**
     * 渠道ID
     */
    private Long channelId;

    /**
     * 分销/自营
     */
    private String scope;

    /**
     * C端访问URL
     */
    private String promoteUrl;


    /**
     * 类型  ALL("全部"), GOODS("商品"), SERVICE("服务")
     */
    private String type;



    /**
     * 名称
     */

    private String name;

    /**
     * 适用/自提门店列表 ids
     */
    private List<Long> merchantStoreIds;

    public String getBarCode() {
        return barCode;
    }

    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    /**
     * 原价

     */
    private Double basePrice;

    /**
     * 售价
     */
    private Double sellPrice;

    /**
     * 库存数量
     */
    private Long quantity;

    /**
     * 运费
     */
    private Double carriage;


    /**
     * 分销产品id
     */
    private Long marketId;

    /**
     * 有效期开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dateEnabled;

    /**
     * 有效期结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dateDisabled;

    /**
     * 访问数
     */
    private Integer viewCount;

    /**
     * 售出数
     */
    private Integer saleCount;

    /**
     * 核销数
     */
    private Integer verifyCount;

    /**
     * 订单编号
     */
    private String orderNum;
    /**
     * 实付金额
     */
    private BigDecimal paymentAmount;
    /**
     * 结算时间
     */
    private Date dateSettle;
    /**
     * 订单状态
     */
    private String status;
    /**
     * YESTERDAY("昨天"), WEEK("最近一周"), MONTH("最近一个月"), QUATER("最近三个月")
     */
    private String dateSearchType;
    /**
     * 开始时间
     */
    private String dateStart;
    /**
     * 结束时间
     */
    private String dateEnd;
    /**
     * 平台ID
     */
    private Long mallId;
    /**
     * 商家ID
     */
    private Long merchantId;
    /**
     * 订单类型 GOODS("实物商品"), SERVICE("到店服务")
     */
    private String orderType;
    /**
     * 物流种类 SHOP_PICKUP("到店自提"), SHIPPING("物流")
     */
    private String productShoppingType;
    /**
     * SELF("自营下单"), MARKET("分销下单")
     */
    private String sourceType;
    /**
     * 商家角色。当订单为分销订单时,用于区分供应商或者分销商 SELF("默认"),SUPPLIER("供应商"), DISTRIBUTOR("分销商")
     */
    private String merchantRole;
    /**
     * LOGO图
     */
    private String logoUrl;
    /**
     * 分享返利
     */
    private BigDecimal shareFee;

    public String getScope() {
        return scope;
    }

    public void setScope(String scope) {
        this.scope = scope;
    }

    public Long getMarketId() {
        return marketId;
    }

    public void setMarketId(Long marketId) {
        this.marketId = marketId;
    }

    public Long getProductId() {
        return productId;
    }

    public Integer getViewCount() {
        return viewCount;
    }

    public void setViewCount(Integer viewCount) {
        this.viewCount = viewCount;
    }

    public Integer getSaleCount() {
        return saleCount;
    }

    public void setSaleCount(Integer saleCount) {
        this.saleCount = saleCount;
    }

    public Integer getVerifyCount() {
        return verifyCount;
    }

    public void setVerifyCount(Integer verifyCount) {
        this.verifyCount = verifyCount;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Long getChannelId() {
        return channelId;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }


    public String getPromoteUrl() {
        return promoteUrl;
    }

    public void setPromoteUrl(String promoteUrl) {
        this.promoteUrl = promoteUrl;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Long> getMerchantStoreIds() {
        return merchantStoreIds;
    }

    public void setMerchantStoreIds(List<Long> merchantStoreIds) {
        this.merchantStoreIds = merchantStoreIds;
    }

    public Double getBasePrice() {
        return basePrice;
    }

    public void setBasePrice(Double basePrice) {
        this.basePrice = basePrice;
    }

    public Double getSellPrice() {
        return sellPrice;
    }

    public void setSellPrice(Double sellPrice) {
        this.sellPrice = sellPrice;
    }

    public Long getQuantity() {
        return quantity;
    }

    public void setQuantity(Long quantity) {
        this.quantity = quantity;
    }

    public Double getCarriage() {
        return carriage;
    }

    public void setCarriage(Double carriage) {
        this.carriage = carriage;
    }

    public Date getDateEnabled() {
        return dateEnabled;
    }

    public void setDateEnabled(Date dateEnabled) {
        this.dateEnabled = dateEnabled;
    }

    public Date getDateDisabled() {
        return dateDisabled;
    }

    public void setDateDisabled(Date dateDisabled) {
        this.dateDisabled = dateDisabled;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public Date getDateSettle() {
        return dateSettle;
    }

    public void setDateSettle(Date dateSettle) {
        this.dateSettle = dateSettle;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDateSearchType() {
        return dateSearchType;
    }

    public void setDateSearchType(String dateSearchType) {
        this.dateSearchType = dateSearchType;
    }

    public String getDateStart() {
        return dateStart;
    }

    public void setDateStart(String dateStart) {
        this.dateStart = dateStart;
    }

    public String getDateEnd() {
        return dateEnd;
    }

    public void setDateEnd(String dateEnd) {
        this.dateEnd = dateEnd;
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getProductShoppingType() {
        return productShoppingType;
    }

    public void setProductShoppingType(String productShoppingType) {
        this.productShoppingType = productShoppingType;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public String getMerchantRole() {
        return merchantRole;
    }

    public void setMerchantRole(String merchantRole) {
        this.merchantRole = merchantRole;
    }

    public String getLogoUrl() {
        return logoUrl;
    }

    public void setLogoUrl(String logoUrl) {
        this.logoUrl = logoUrl;
    }

    public BigDecimal getShareFee() {
        return shareFee;
    }

    public void setShareFee(BigDecimal shareFee) {
        this.shareFee = shareFee;
    }

    @Override
    public String toString() {
        return "ChannelProductDto{" +
                "productId=" + productId +
                ", productName='" + productName + '\'' +
                ", barCode='" + barCode + '\'' +
                ", channelId=" + channelId +
                ", scope='" + scope + '\'' +
                ", promoteUrl='" + promoteUrl + '\'' +
                ", type='" + type + '\'' +
                ", name='" + name + '\'' +
                ", merchantStoreIds=" + merchantStoreIds +
                ", basePrice=" + basePrice +
                ", sellPrice=" + sellPrice +
                ", quantity=" + quantity +
                ", carriage=" + carriage +
                ", marketId=" + marketId +
                ", dateEnabled=" + dateEnabled +
                ", dateDisabled=" + dateDisabled +
                ", viewCount=" + viewCount +
                ", saleCount=" + saleCount +
                ", verifyCount=" + verifyCount +
                ", orderNum='" + orderNum + '\'' +
                ", paymentAmount=" + paymentAmount +
                ", dateSettle=" + dateSettle +
                ", status='" + status + '\'' +
                ", dateSearchType='" + dateSearchType + '\'' +
                ", dateStart='" + dateStart + '\'' +
                ", dateEnd='" + dateEnd + '\'' +
                ", mallId=" + mallId +
                ", merchantId=" + merchantId +
                ", orderType='" + orderType + '\'' +
                ", productShoppingType='" + productShoppingType + '\'' +
                ", sourceType='" + sourceType + '\'' +
                ", merchantRole='" + merchantRole + '\'' +
                ", logoUrl='" + logoUrl + '\'' +
                '}';
    }
}
